package com.wrench.elevator.tida.dao;

import java.util.List;
import java.util.Map;

import org.springframework.ui.ModelMap;

import com.wrench.elevator.tida.domain.Building;
import com.wrench.elevator.tida.domain.City;
import com.wrench.elevator.tida.domain.District;
import com.wrench.elevator.tida.domain.FlowDetails;
import com.wrench.elevator.tida.domain.Province;
import com.wrench.elevator.tida.domain.User;

/**
 * 区楼盘幢单元 ，一次性查询json 串 格式: 区:[ 楼盘：[ 1幢1单元，。。。 ] ]
 * */
public interface ZZGLDao
{
    /**
     * 获取 区/楼盘/幢-单元 三级列表
     * */
    List<District> getDistrictByWuyeId(int wuye_id);
    
    /**
     * 获取省份列表
     * */
    List<Province> getProvinces(int wuye_id);
    
    /**
     * 根据省份ID获取城市列表
     * */
    List<City> getCitys(int wuye_id,int province_id);
    
    /**
     * 根据城市ID获取区县列表
     * */
    List<District> getDistricts(int wuye_id,int city_id);
    
    @Deprecated
    List<Building> getBuildings(int district_id);
    
    /**
     * 添加楼盘【小区】
     * */
    int addBuilding(Building building);
    
    /**
     * 添加用户到该单元 User user
     * */
    void inputUser(ModelMap params);
    
    /**
     * 分页查询该单元用户信息
     * */
    List<User> queryUserByDanyuanId(String danyuan_id, int start, int limit);
    
    /**
     * 查询该单元用户总数
     * */
    int queryUserByDanyuanIdCount(String danyuan_id);



    /**
     * 分页查询该单元用户信息
     * */
    List<User> queryUserByBuildingId(String danyuan_id, int start, int limit);

    /**
     * 查询该单元用户总数
     * */
    int queryUserByBuildingIdCount(String danyuan_id);
    
    /***
     * 修改用户信息
     * */
    int updateUser(User user);
    
    /**
     * 根据手机号分页查询该物业下的用户
     * */
    List<User> queryUserByTelAndWuyeId(int wuye_id, String user_tel, int start, int limit);
    
    /**
     * 根据手机号查询该物业下的用户总数
     * */
    int queryUserByTelAndWuyeIdCount(int wuye_id, String tel);
    
    /**
     * 根据用户ID分页查询充值明细
     * */
    List<FlowDetails> getChongzhiDetails(String user_id, int start, int limit, int start_date, int end_date);
    
    /**
     * 根据用户ID查询充值明细count
     * */
    int getChongzhiDetailsCount(String user_id, int start_date, int end_date);
    
    /**
     * 根据用户ID分页查询乘梯明细
     * */
    List<FlowDetails> getChengtiDetails(String user_id, int start, int limit, int start_date, int end_date);
    
    /**
     * 根据用户ID查询乘梯明细count
     * */
    int getChengtiDetailsCount(String user_id, int start_date, int end_date);
    
    /**
     * 根据用户ID分页查询流水明细
     * */
    List<FlowDetails> getFlowDetails(String user_id, int start, int limit, int start_date, int end_date);
    
    /**
     * 根据用户ID查询乘梯明细count
     * */
    int getFlowDetailsCount(String user_id, int start_date, int end_date);
    
    
    /**
     * 获取 省/市/区/楼盘/幢-单元 三级列表
     * */
    List<Province> getProvinceByWuyeId(int wuye_id);

/**
 * 获取审核列表
 * */
    List<Map> getCheckList(String wuye_id,String building_id,String[] type,int start,int end);


    int getCheckListCount(String wuye_id,String building_id,String[] type);
    
   /**
    * 审核
    * */
    int check(String id,String type);

    /**
     * 修改小区信息
     * */
    int alterBuilding(Building building);

    /**
     * 根据小区ID获取小区信息
     * */
    Map getBuildingInfo(String building_id);



    /**
     * 分页查询该单元用户信息
     * */
    List<User> queryUserByProvinceId(String province_id,String wuye_id, int start, int limit);

    /**
     * 查询该单元用户总数
     * */
    int queryUserByProvinceIdCount(String province_id,String wuye_id);



    /**
     * 分页查询该单元用户信息
     * */
    List<User> queryUserByCityId(String city_id,String wuye_id, int start, int limit);

    /**
     * 查询该单元用户总数
     * */
    int queryUserByCityIdCount(String city_id,String wuye_id);


    /**
     * 分页查询该单元用户信息
     * */
    List<User> queryUserByDistrictId(String district_id,String wuye_id, int start, int limit);

    /**
     * 查询该单元用户总数
     * */
    int queryUserByDistrictIdCount(String district_id,String wuye_id);

    /**
     * 获取用户地址下电梯设备
     **/
    List<String> getDeviceAlias(String user_id,int flag);
    
    /**
     * 获取用户的face列表
     */
    List<Map<String,String>> getFaceIds(String user_id,int flag);
    
    /**
     * 获取用户的face列表
     */
    String getUseridByTel(String telphone);
    
}
